// /****************************** (C) COPYRIGHT 2016 Rsestudio ***********************
// * File Name          : 
// * Author             : Rsestudio
// * Version            : V1.0.0
// * Date               : 01-MAR-2024
// * Description        : 
// *****************************************************************************************/
// /* Includes ----------------------------------------------------------------------------*/
// #include "freertos/FreeRTOS.h"
// #include "freertos/task.h"
// #include "Bsp.h"
// #include "iProfile_main.h"
// #include "device_pins.h"

// #include "AS5311.h"
// /* Private define ----------------------------------------------------------------------*/
// /* Private macro ----------------------------------------------------------------------*/
// /* Private typedef ---------------------------------------------------------------------*/
// /* Extern variables --------------------------------------------------------------------*/
// /* Private variables --------------------------------------------------------------------*/
// /* Private functions -------------------------------------------------------------------*/

// void as_uDelay(uint16_t x)
// {
// 	uint16_t i;
// 	while(x--)
// 	{
// 		__asm("nop");//for(i=0;i<1;i++);
// 	}
// }

// /*****************************************************************************************
// * Function Name  : AS5311_Read
// * Description    : 
// * Input          : None
// * Output         : None
// * Return         : None
// *****************************************************************************************/
// int32_t AS5311_Read(uint32_t *Data)
// {
// 	uint8_t status = 0;
// 	uint32_t temp = 0;
// 	uint8_t i;
// 	uint8_t parity = 0;
	

// 	ENC_SCLK_H();
// 	ENC_CS_L();
// 	as_uDelay(1);
// 	ENC_SCLK_L();
// 	as_uDelay(1);
	
// 	for(i=0;i<18;i++)
// 	{
// 		temp<<=1;
// 		ENC_SCLK_H();
// 		as_uDelay(1);
// 		ENC_SCLK_L();
//         as_uDelay(1);
// 		temp = temp;	//delay
// 		if(ENC_MISO()!=0)
// 		{
// 			temp |= 0x01;
//             parity++;
// 		}
// 	}
    
// 	ENC_CS_H();
    
// 	if((temp&0x10)!=0)
// 	{
// 		status = 1;
// 	}
	
// 	if(parity%2!=0)
// 	{
// 		status = 1;
// 	}
	
// 	*Data = temp;
		
// 	return status;
// }

// uint8_t AS5311_read_status(uint32_t *psts)
// {
// 	uint8_t status = 0;
// 	uint32_t temp = 0;
// 	int32_t temp1 = 0;
// 	uint8_t i;
// 	uint8_t parity = 0;
	
// //	AS5311_CS_H();
// //	u_delay(1);
// 	ENC_SCLK_L();
// 	ENC_CS_L();
// 	__asm("nop");
// 	ENC_SCLK_L();
// 	__asm("nop");
	
// 	for(i=0;i<18;i++)
// 	{
// 		temp<<=1;
// 		ENC_SCLK_H();
// 		__asm("nop");
// 		ENC_SCLK_L();
// 		__asm("nop");
// 		if(ENC_MISO()!=0)
// 		{
// 			temp |= 0x01;
// 		}
// 	}
			
// 	temp1 = temp;
	
// 	for(i=0;i<18;i++)
//     {
//         parity += temp1 & 1;
//         temp1 >>=1;
//     }
	
// //	if((temp&0x10)!=0)
// //	{
// //		status = 1;
// //	}
	
// 	if((temp&0x1E)!=0)
// 	{
// 		status = 1;
// 	}
	
// 	if(parity%2!=0)
// 	{
// 		status = 1;
// 	}
	
	
// 	*psts = temp;
	
// 	ENC_CS_H();
	
// 	return status;
// }


// /*****************************************************************************************
// * Function Name  : 
// * Description    : 
// * Input          : None
// * Output         : None
// * Return         : None
// *****************************************************************************************/
// uint8_t AS5311_init(void)
// {
    
//     return 0;
// }


// int32_t Pos_Cycle;
// int32_t enc_last_pos;
// int32_t enc_abs_position;

// uint32_t test_read;

// void width_set_zero(void)
// {
//     iProfile.r_width.offset = iProfile.r_width.raw;
//     iProfile.r_width.offset_select = 0;
// }

// void width_set_point(int32_t width)
// {
//     iProfile.r_width.offset = width * 2048 + iProfile.r_width.raw;
//     iProfile.r_width.offset_select = 1;
// }

// /*****************************************************************************************
// * Function Name  : 
// * Description    : 
// * Input          : None
// * Output         : None
// * Return         : None
// *****************************************************************************************/
// int AS5311_polling(void)
// {
//     //uint32_t test_read;
// 	int32_t current_pos;
	
// 	if(AS5311_Read(&test_read)==0)
// 	{
// 		current_pos = test_read>>6;
// 		if((current_pos - enc_last_pos)<-2048)
// 		{
// 			//current_pos += 4096;
// 			Pos_Cycle += 4096;
// 		}
// 		else if((current_pos - enc_last_pos)>2048)
// 		{
// 			//current_pos -= 4096;
// 			Pos_Cycle -= 4096;
// 		}
// 		enc_last_pos = current_pos;
		
// 		enc_abs_position= Pos_Cycle + current_pos;
//         enc_abs_position = enc_abs_position*-1;
//         iProfile.r_width.raw = enc_abs_position;
        
//         iProfile.r_width.relative = (iProfile.r_width.offset - enc_abs_position)*100/2048;
        
//         iProfile.sys_status.v_data_buf[V_ID_WIDTH] = iProfile.r_width.relative;
// 	}
        
//     return 0;
// }
// /**********************************(C)COPYRIGHT 2016 Rsestudio ************************/
// /*****************************************END OF FILE**********************************/

